/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Controllers;

import EJB.Business.GestorDeUsuariosLocal;
import Entity.Usuario;
import Exceptions.BusinessException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;


/**
 *
 * @author mquezada
 */
public class UsersController extends BaseController {

    private Usuario usuario;
    private String username;
    private String password;
    private String password2;
    private String nombre;
    private String apellido;
    private String email;
    private String telefono;
    private String direccion;
    
    private @EJB GestorDeUsuariosLocal gestorUsuarios;

    /** Creates a new instance of UsersController */
    public UsersController() {}

     public String doLogin() {
        String res = "login.incomplete";

        if(this.username == null || this.password == null)
            return res;
        try {
            if(this.login(username,password)) {
                res = "login.sucess";
            } else {
                res = "login.failure";
            }
        } catch (Exception e) {            
        }

        return res;
    }

    public String doRegister() {
        String destino = "register.failure";

        if (username.equals("")) {
            addError("No se ha indicado un nombre de usuario");
        } else if (password.equals("")) {
            addError("No se ha indicado una contraseña");
        } else if (password2.equals("")) {
            addError("No se ha repetido la contraseña");
        } else if (!password.equals(password2)) {
            addError("Las contraseñas introducidas no coinciden");
        } else if(email.equals("") || nombre.equals("") || apellido.equals("") || telefono.equals("") || direccion.equals("")) {
            addError("Debe completar los campos requeridos");
        } else {
            String[] params = { username, password, email, nombre, apellido, telefono, direccion };
            try {
                if(gestorUsuarios.register(params)) {
                    destino = "register.success";
                    if( this.login( username, password ) )
                        destino = "login.success";
                    else
                        destino = "login.failure";
                }
            } catch (BusinessException ex) {                
            }
        }
        return destino;
    }

    public String doLogout() {
        return null;
    }

    private boolean login(String username, String password) {
        if(gestorUsuarios.login(this.username, this.password)) {
            usuario = gestorUsuarios.getUsuario(username);
            return true;
        }
        return false;
    }
    
    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPassword2() {
        return password2;
    }

    public void setPassword2(String password2) {
        this.password2 = password2;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }   

}
